package com.jsmy.marketing.utils;

import android.content.Context;

import java.util.Set;

import cn.jpush.android.api.JPushInterface;
import cn.jpush.android.api.TagAliasCallback;
import cn.jpush.im.android.api.JMessageClient;
import cn.jpush.im.api.BasicCallback;

/**
 * Created with Android Studio.
 * User: wei_cd.
 * Date: 2018/3/12.
 * Time: 17:00.
 * To change for file | settings | file and code templates.
 */

public class JPushUtils {

    private static String TAG = "JPushMessage";

    public static void loginJMessage(final Context context, final String yhid) {
        //极光登录
        JMessageClient.login(yhid, "123456", new BasicCallback() {
            @Override
            public void gotResult(int i, String s) {
                if (i == 0) {
                    L.e(TAG, "登录成功");
                    //设置别名
                    setAliasByYhid(context, yhid);
                } else if (i == 800005) {
                    L.e(TAG, "用户ID未注册（appkey无该UID）");
                } else if (i == 800006) {
                    L.e(TAG, "用户ID不存在（数据库中无该UID）");
                } else if (i == 800012) {
                    L.e(TAG, "发起的用户处于登出状态，账号注册以后从未登录过，需要先登录");
                } else if (i == 800013) {
                    L.e(TAG, "发起的用户处于登出状态，请求的用户已经登出，需要先登录");
                } else if (i == 800014) {
                    L.e(TAG, "发起的用户appkey与目标不匹配");
                } else if (i == 801003) {
                    L.e(TAG, "登录的用户名未注册，登录失败");
                    registerJMessage(context, yhid);
                } else if (i == 801004) {
                    L.e(TAG, "登录的用户密码错误，登录失败");
                } else if (i == 801005) {
                    L.e(TAG, "登录的用户设备有误，登录失败");
                } else if (i == 802002) {
                    L.e(TAG, "登出用户名和登录用户名不匹配，登出失败");
                } else if (i == 871201) {
                    L.e(TAG, "登录失败，响应超时！");
                    loginJMessage(context, yhid);
                } else {
                    L.e(TAG, "错误码 " + i + " 登录失败，请联系管理员！");
                }
            }
        });
    }

    public static void registerJMessage(final Context context, final String yhid) {
        //极光注册
        JMessageClient.register(yhid, "123456", new BasicCallback() {
            @Override
            public void gotResult(int i, String s) {
                if (i == 0) {
                    L.e(TAG, "注册成功！");
                    loginJMessage(context, yhid);
                } else if (i == 871504) {
                    L.e(TAG, "Push 注册未完成，请稍后重试。如果持续出现这个问题，可能你的 JPush 配置不正确。");
                    registerJMessage(context, yhid);
                } else if (i == 871505) {
                    L.e(TAG, "Push 注册失败,对应包名在控制台上不存在。");
                } else if (i == 871506) {
                    L.e(TAG, "Push 注册失败，设备IMEI不合法");
                } else {
                    L.e(TAG, "错误码 " + i + " 注册失败，请联系管理员！");
                }
            }
        });
    }

    public static void setAliasByYhid(Context context, final String yhid) {
        //这是别名
        JPushInterface.setAlias(context, yhid, new TagAliasCallback() {
            @Override
            public void gotResult(int i, String s, Set<String> set) {
                L.e(TAG, " --- " + yhid + " ---" + i);
                switch (i) {
                    case 0:

                        break;
                    case 6002:

                        break;
                    default:
                        break;
                }
            }
        });
    }

}
